package config0

import (
	"log"
	"os"
	"strings"
	"sync"
)

type SimpleConfig struct{}

var (
	readConfigOnce sync.Once
	port           string
	csv_path       string
)

// 即使多次调用也只执行一次
func (*SimpleConfig) getEnv() {
	readConfigOnce.Do(func() {
		byteContent, err := os.ReadFile("./search_tool.txt")
		if err != nil {
			log.Fatal(err)
			return
		}
		content := string(byteContent)
		arr := strings.Split(content, "\n")
		if len(arr) > 0 {
			port = arr[0]
			// 可能是受`Split \n`的影响 这里需要 trim 一下
			port = strings.Trim(port, " \t\n\v\f\r")
		}
		if len(arr) > 1 {
			csv_path = arr[1]
			csv_path = strings.ReplaceAll(csv_path, "\\", "/")
			csv_path = strings.Trim(csv_path, " \t\n\v\f\r")
		}
	})
}

func (s *SimpleConfig) GetPort() string {
	s.getEnv()
	return port
}

func (s *SimpleConfig) GetCsvPath() string {
	s.getEnv()
	return csv_path
}
